Optical disks have found widespread use in both computer and consumer electronics fields. Compact Disks (CD) were originally produced for storage of audio recordings and later adapted for use on personal computers (PCs) as CD-ROMs. Optical disks are inexpensive to produce and durable. A laser beam is deflected by small pits arranged in a continuous spiral on the disk's surface. The presence or absence of the pits as the disk spins over the laser beam is detected as binary data.
Increasing data bandwidth requirements of PCs has driven development of higher and higher speed CD-ROM readers or drives. CD-ROM drives have progresses from the original "1.times." speed, to double-speed, quad-speed, 8.times., 16.times., and now 32.times. and up to 40.times. drives. Limitations of CD technology such as a fixed wavelength of the laser and limited error correction cause data errors at the higher speeds. While the physical data on the disk may be correct, the higher rotational and reading speeds may introduce errors. Often these higher-speed CD-ROM drives must slow down and re-read data sectors when errors are encountered. Re-reading the data defeats the benefits of higher-speed drives.
The original music CD players typically read the data in a continuous stream, following the continues spiral track of the optical disk. The data is arranged into sectors of about 2K bytes each. These sectors are identified by a header that includes an MSF field. The MSF field specifies the minutes, seconds, and frame of the musical data in the sector. Each sector has a unique MSF field, and the sectors are arranged in ascending MSF order on the optical disk.
As the CD is played, the sectors are read in sequence, from MSF=0,0,0 through the first 75 frames to MSF=0,0,75 for the first second of music, then for 75 more frames for the next second until MSF=0,1,75. This continues through 75 frames for each second, for 60 seconds, and for up to 60 minutes, until MSF=60, 60, 75.
When it is desired to skip ahead to a desired song, the MSF for the song is looked up and the CD player searches the headers for the song's MSF. Once the correct MSF is found, the CD player reads the data in the sectors following the target MSF. Because of pipelining and the continuous spinning of the disk, the target MSF is usually the MSF just before the desired song, such as MSF-1, the previous frame. For a description of track jumping, see U.S. Pat. No. 5,623,460 by Nagasawa et al., and assigned to Sanyo Electric Co.
Computer data also is stored into sectors identified by sequential MSF fields in the sector header. An index or catalog of the computer files on the disk can be used to find the MSF for a desired computer file. A CD-ROM reader can then search the headers for the target MSF, typically the previous sector, MSF-1.
For computer data, the MSF has no direct correspondence to minutes or seconds of display on a computer, but merely forms a convenient index to store the data. Since the MSF values increase in sequential order across the disk, the disk controller can move the laser inward or outward across many turns or tracks of the spiral to the approximate location of the target MSF. Then it can check for the correct M value and re-adjust the laser position if necessary, until the correct M and then S values are found, and eventually the target MSF.
MSF-1 Search--FIG. 1
FIG. 1 illustrates a data stream read from a CD at low speeds. The data stream read from the CD or CD-ROM is arranged into data sectors. Each data sector begins with a synchronizing or sync pattern 10 followed by header 12 and data 14. The sync pattern is a fixed pattern that is not found in header 12 or data 14. The sync pattern is a violation of the standard run-length-limited (RLL) coding used to encode the data and header for recording on the optical disk. Thus the sync pattern is easily identified.
Data 14 contains about 2K bytes of user data, and some error-correction information. Header 12 contains the minutes, second, frames MSF value that uniquely identifies the sector. For example, the first header 12 of FIG. 1 has an MSF of 7,0,1, which is frame 1 of second 0 of minute 7. The next has an MSF or 7,0,2, followed by the next header 7,0,3. The target header 16 has an MSF of 7,0,4. The desired data is not the data following target header 16, but rather the next new sector, with an MSF of 7,0,5. The target MSF is the desired MSF-1, the previous frame.
MSF-1 Search Fails at Higher Speed--FIG. 2
While searching for the target header of MSF-1 is effective at lower speeds, failures can occur at higher speeds, such as with 32.times. CD-ROM drives. FIG. 2 highlights a MSF-1 search failure at higher speeds.
At higher speeds, sync patterns 10 can still be found, and additional errors in data 14 caused by the higher-speed reading can often be corrected by error correction. However, header 12 must be quickly read and compared to the target MSF-1 before the next sector is reached, so that a decision to buffer the sector can be made in time. Error correction information is contained at the end of data 14 following header 12, so error correction information is not even available until just before the next sector begins.
Thus there is typically not enough time for error correction of header 12 before the next header is reached.
Errors in the header's MSF fields can cause the CD-ROM controller to miss the target MSF. For example, in FIG. 2 the target MSF in header 16 contains an error. The disk is read so fast that the MSF of 7,0,4 is instead read as 7,8,4. Since 7,8,4 does not match the target of 7,0,4, the disk controller does not find the target. After some timeout, the disk controller will have to go back and search again for the target header, perhaps reading the correct MSF of 7,0,4 on the re-try. The rotational speed of the disk may be slowed after several search failures at high speed. Once the disk spins slowly enough, the correct MSF of 7,0,4 is read as was shown in FIG. 1. Of course, such repeated searches and disk deceleration consume time and reduce performance.
What is desired is a CD-ROM drive that can operate at high speeds such as 32.times.. It is desired to avoid slowing the disk to re-read sector headers during a search. It is desired to search for header information at high speed despite read errors. It is desired to read headers without error correction during a sector search. An error-tolerant sector-searching controller is desired for use with high-speed CD-ROM drives. A flexible sector-search method is desired that can adapt to read errors without decelerating the disk.